2020年软件测试趋势报道:无代码化的测试自动化
2020年软件测试自动化的趋势除了智能化、云化、敏捷化/DevOps化、模型化等,还有一个亮眼的存在:Codeless Test Automation,即无代码化的测试自动化。不是没有代码,而是测试人员不用自己开发测试代码,使用Codeless测试工具可以帮助我们生成可以执行的测试用例集。如此将大大降低自动化测试的技术门槛,没有编程经验的测人员甚至是业务分析人员也可以很快上手,是不是令人心动?
实际上,这不仅是软件测试的一个新趋势,而且是整个软件工程的一个新趋势:无代码化的软件应用,比如国际上比较流行的无代码化网站创建工具包括Wix、Squarespace等。软件测试正是顺应这一趋势,出现了一些无代码化的测试工具。
在目前的软件测试中,为了达到一个比较高的测试自动化水平,测试人员还是有很多工作要做的,比如搭建测试环境、设计测试用例、开发测试脚本,有的组织还自己开发自动化测试工具或框架,这些几乎都需要手工完成,测试自动化也仅仅体现在测试执行的自动化上,开发测试脚本、适配到不同的软件版本、不同的浏览器(UI自动化测试),以及调试代码让其能够稳定运行一般都要花费不少时间。因此,即使在测试自动化水平比较高的团队里,软件测试也难免会成为软件快速交付的瓶颈。
当一个团队在单元测试方面投入不够,只能基于Selenium、Appium这样的测试工具来编写大量端到端的UI自动化测试脚本,团队里的开发人员一般是不负责的,就要求测试人员具备一定的编程能力,对于很多组织来说,大多数软件测试人员的编程能力比较弱,这也拖累了自动化水平的提高和面向测试自动化的转型。
Codeless自动化测试工具的出现正是为了解决上述难题,这类工具一般有两个核心特点:
提供友好的界面,测试人员不需要编写代码即可通过界面上的操作完成测试用例的开发。 通过人工智能(AI)和机器学习算法使测试用例具有自愈机制,能够自动进化和完善,自动修复和维护测试脚本中的对象和元素定位。
Codeless自动化测试工具能够带来的好处也显而易见,这就是更高的测试覆盖率和更短的软件交付周期。不仅节省测试脚本的开发时间,也节省调试时间,而且提升测试代码的可重用性,可以跨项目跨版本重用测试代码,而不需要手动更新和调试测试代码。此外,也有利于促进敏捷团队中不同技能和职责的团队成员参与软件测试,比如团队中的业务分析人员。
下面列举一些Codeless自动化测试工具。
1. Katalon Studio:
Katalon Studio使用Selenium和Appium作为底层框架,支持Web和Android、iOS移动应用的UI自动化测试,支持多种主流浏览器。也支持Restful和Soap协议的API接口自动化测试。作为无代码的测试工具,既支持有编程经验的测试人员使用Groovy语言开发测试脚本,同时也支持没有编程经验的测试人员开发测试用例。
在UI自动化测试方面,它提供录制-回放功能,Web recorder utility接收应用程序上的所有动作,转化成测试用例。也提供object spy功能在界面上捕获元素对象来支持用户自己编写测试用例。
在最新的7.6版本中,Katalon Studio提供了UI测试用例自愈(self-healing)功能:在测试用例运行时,当使用缺省的定位方法(比如XPath)定位不到这个元素时,工具会自动尝试其它的定位方式进行元素定位(比如CSS),让测试得以运行,并在随后的测试中也使用新的定位方式。测试结束后会建议更新测试用例:用新的定位方式代替不工作的定位方式。但使用这个功能需要企业版的License。至于这个功能是不是通过AI技术实现的,在Katalon Studio的官方指南中并没有强调。
当然,作为一个优秀的测试工具的标配,Katalon Studio提供多种plug-in支持和Jira、Git、Jenkins、Jmeter、Sauce Labs等多款工具的集成,实现和测试管理、缺陷管理和持续集成管理的集成。
对于Katalon Studio的功能,后续还会专门介绍。
2. TestCraft:
TestCraft是一款商业软件,以SaaS的模式为Web应用提供自动化测试服务,用户通过账号登录Web管理界面,因此也是一款云化的测试工具。底层也是基于Selenium框架。TestCraft通过两种方式生成测试用例:一种是通过图形界面建模生成、调整测试步骤,等功能实现后再为每个测试步骤添加控件元素。因此,这也可以说是一款模型化(MBT)测试工具——在需求分析阶段就创建测试步骤,有助于团队内部沟通澄清需求。另一种是在软件功能实现以后通过录制—回放生成测试用例。
为每一个测试用例创建一个模型,直观的展示测试执行的路径,适合设计复杂的测试场景。 提供“智能绑定”式定位器的推荐和自我修复。 缺点:只能使用专有的框架,无法导入/导出测试脚本。
3. Perfecto
Perfecto是一款商业软件,提供云化的测试自动化解决方案,用于Web和移动应用的测试。它远程提供多款手机及平板真机,支持在远程iOS和Android设备上进行手工或自动化测试,可以在多台设备上并行运行自动化测试。基于录制-回放的无代码化测试用例开发是Perfecto提供的功能之一,如下图所示,实时捕捉界面上的操作在左边生成和调整测试步骤。
大家有兴趣可以到其官网上看一下demo: https://www.perfecto.io/codeless-automation。 基于AI的自愈功能让测试脚本能够连续运行,自我完善。另外它还提供基于AI技术的测试分析和缺陷分类,帮助快速定位缺陷。总之,值得大家去深入学习它所提供的这些智能化的功能。
4. TestingWhiz
TestingWhiz也可以支持Web及移动端的UI自动化测试,以及Web Service的API测试。基于关键字和数据驱动测试用例。它提供的Visual Recorder可以支持桌面应用、flash应用的元素识别和web UI测试。TestingWhiz提供recorder功能可以录制和存储web应用控件,桌面应用控件,以及移动应用的控件。
除上述工具之外,还有CloudQA、TestProject、Mabl等其它的Codeless测试工具,就不一一介绍了。
其实,基于录制-回放技术的UI自动化测试工具很早就有,当时主要针对桌面应用,也可以认为它们是“无代码化”测试工具的前身。在国际敏捷联盟网站整理的“Agile Practices Timeline”(敏捷实践编年史)也有这类工具的相关记载:
1990:
这样看起来无代码化也不是一个新生事物,让人不得不感慨软件测试也经历了一次轮回。想起20年前使用Silk Test做桌面应用的UI自动化测试的痛苦经历:几乎每个操作系统上的测试脚本都需要重新适配,有了新的软件版本也经常不得不重新调试测试脚本,尝试了一年终于放弃……。传统的录制-回放测试工具代码结构化差,不支持数据驱动,对测试用例组织和维护方面做得差。整个测试生态当然也不如现在,现在很多工具都支持和其它工具的集成,自己不具备的功能可以通过plug-in和其它工具进行集成。
另外,功能好不好用关键还在于实现的细节。这里简单对比一下Selenium IDE和Katalon Studio的录制-回放功能。
Selenium IDE | Katalon Studio | |
支持类型 | Web browser: Chrome,Firefox | Web Browser: Chrome, Firefox, IE,Edge Chromium Mobile: Android, iOS Windows桌面应用 |
Web browser录制功能 | 先安装所支持的web browser,添加对应的Selenium IDE plug-in。 | 不需要事先安装web browser,录制测试脚本时在Katalon Studio界面上选择一种web browser |
录制 | 实时生成每一个测试步骤 | |
总结
PS:明天有重要消息发布,请关注